<?php
/**
 * Created by PhpStorm.
 * User: mac
 * Date: 2017/12/15
 * Time: 上午9:41
 */

require  '../vendor/autoload.php';
use Pheanstalk\Pheanstalk;

//终端等待表示没有生产者产生数据


$pheanstalk = new Pheanstalk("127.0.0.1",11300);

//reserve可以设置阻塞时间,不设置会一直等待,watch 可以同时监听两个管道,
$job = $pheanstalk->watch('mytube')->watch('default')->reserve(); // reserver是获取ready的job

$pheanstalk->ignore('default');//忽略管道

//处理代码
if ($job->getData() == 'one') {
    sleep(2);// 超时重回队列3秒,睡眠两秒,delete之前的代码还能执行1秒,如果想在加
    $pheanstalk->watch('mytube')->touch($job);//续命
}


print_r($job);


/*
$pheanstalk->watch('mytube')->delete($job);
//会把任务重新放入管道,并把任务设置为ready状态
$pheanstalk->release($job);

//把任务放在一边暂时不处理,条件成熟了在读取出来
$pheanstalk->bury($job);

$pheanstalk->peekBuried('mytube');// 获取处理bury状态的任务

$pheanstalk->kickJob($job);//会把job转变成ready状态

$pheanstalk->kick(200);//把job编号小于200的变成ready状态

//--- 获取某个状态的任务
$pheanstalk->peekDelayed();
$pheanstalk->peekReady();
$pheanstalk->peekBuried();
$pheanstalk->pauseTube('mytube',10);//阻塞整个管道时间
*/
